const AdminBiz = require('../../../../store/admin_biz_config.js');
const pathResolver = require('../config/path_resolver');
const pathImport = require('../helpers/path_import.js');
const { pageHelper, projectSetting } = pathImport;
const { createStoreBindings } = require('mobx-miniprogram-bindings');
const { userAdminStore } = require('../../../../store/user_admin_store.js');

Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		isLoad: false,
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {
		if (!AdminBiz.isAdmin(this)) return;

		// 创建MobX Store绑定
		this.storeBindings = createStoreBindings(this, {
			store: userAdminStore,
			fields: ['exportData', 'loading'],
			actions: ['loadExportData', 'setExportCondition', 'exportUserData', 'deleteExportData', 'openExportDoc'],
		});

		if (options && options.condition) {
			this.setExportCondition(options.condition);
		}

		this._loadDetail(1);
	},

	_loadDetail: async function (isDel) {
		if (!AdminBiz.isAdmin(this)) return;

		// 使用MobX store加载导出数据
		const result = await this.loadExportData(isDel);
		
		if (!result) return;

		// 同步store数据到页面state
		this.setData({
			isLoad: true,
			url: this.data.exportData.url,
			time: this.data.exportData.time,
			condition: this.data.exportData.condition
		});
	},


	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {
		// 清理MobX绑定
		this.storeBindings.destroyStoreBindings();
	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: async function () {
		await this._loadDetail(1);
		wx.stopPullDownRefresh();
	},

	bindOpenTap: function (e) {
		// 使用MobX action打开文档
		this.openExportDoc();
	},

	url: async function (e) {
		pageHelper.url(e, this);
	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	bindExportTap: async function (e) {
		try {
			// 使用MobX action导出用户数据
			const total = await this.exportUserData(projectSetting.USER_FIELDS);
			
			if (total > 0) {
				pageHelper.showModal('数据文件生成成功(' + total + '条记录), 请点击「直接打开」按钮或者复制文件地址下载');
			}
		} catch (err) {
			console.log(err);
			pageHelper.showNoneToast('导出失败，请重试');
		}
	},

	bindDelTap: async function (e) {
		try {
			// 使用MobX action删除导出数据
			const result = await this.deleteExportData();
			
			if (result) {
				// 同步最新状态到页面
				this.setData({
					url: '',
					time: ''
				});
				pageHelper.showSuccToast('删除成功');
			}
		} catch (err) {
			console.log(err);
			pageHelper.showNoneToast('删除失败，请重试');
		}
	},
})